package com.cleaningcloud.cld.domain;

import com.cleaningcloud.common.core.annotation.Excel;
import com.cleaningcloud.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 发票管理对象 cld_invoice
 *
 * @author cleaningcloud
 * @date 2024-10-16
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class CldInvoice extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 发票ID
     */
    private Long invoiceId;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 服务日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "服务日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 1)
    private Date serviceDate;

    /**
     * 送达方式(1快递2全电3自送)
     */
    @Excel(name = "送达方式", sort = 5, readConverterExp = "1=快递,2=全电,3=自送")
    private Long serviceType;

    /**
     * 快递公司名称
     */
    private String courierName;

    /**
     * 快递人名称
     */
    private String courierUser;

    /**
     * 快递单号
     */
    @Excel(name = "快递单号", sort = 6)
    private String courierNumber;

    /**
     * 发票号码
     */
    @Excel(name = "发票号码", sort = 7)
    private String invoiceNumber;

    /**
     * 应开票金额
     */
    @Excel(name = "应开票金额", sort = 8)
    private BigDecimal answerInvoiceAmount;

    /**
     * 实开票金额
     */
    @Excel(name = "实开票金额", sort = 9)
    private BigDecimal realInvoiceAmount;

    /**
     * 开票年份
     */
    private Integer invoiceYear;

    /**
     * 开票月份
     */
    private Integer invoiceMonth;

    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 10)
    private Date invoiceDate;

    /**
     * 开票状态(0未开具1已开具)
     */
    private Long invoiceStatus;

    /**
     * 签收状态(0未签收1已签收)
     */
    @Excel(name = "签收状态", sort = 11, readConverterExp = "0=未签收,1=已签收")
    private Long signStatus;

    /**
     * 附件
     */
    private String invoiceAttrs;

    /**
     * 创建人ID
     */
    private Long createId;

    /**
     * 创建人名称
     */
    @Excel(name = "操作人", sort = 12)
    private String createName;

    /**
     * 备注是否关闭
     */
    private Long flag;


}
